package com.zjl.Kafka.第03章_操作kafka;

import org.apache.kafka.clients.consumer.ConsumerConfig;
import org.apache.kafka.clients.consumer.ConsumerPartitionAssignor;
import org.apache.kafka.common.serialization.StringDeserializer;

import java.util.HashMap;
import java.util.Map;

/**
 * 消费者组   必选项
 *      一个消费者组当成了一个整体
 *
 * *****************************************************************************
 * 消费者组偏移量文件  __consumer_offsets-xx  xx -> 0-49
 *    消费者组名字.hashcode % 50
 *
 * 消费者分配策略 Assignor
 *      这个分配策略其实是由消费者的 主消费者（Leader）决定的，这个Leader我们称之为群主。
 *      群主是多个消费者中，第一个加入组中的消费者，其他消费者我们称之为Follower,
 *      称呼上有点类似与分区的Leader和Follower.
 *
 *  消费者组 的主消费者 选举策略
 *      1. 消费者01 ->  kafka节点                查找消费者组管理器
 *      2. kafka节点 -> 消费者01                 消费者组.hashcode % 50 也就是这个文件管理这个消费者组   __consumer_offsets-xx
 *      3. 消费者01 -> 消费者组偏移量文件           加入 消费者组队列 （没有就创建）
 *      4. 消费者01 -> 消费者组偏移量文件           同步消费者的 主题和分区 分配策略
 *      5. 消费者02 -> kafka节点                 查找消费者组管理器
 *      6. kafka节点 -> 消费者02                 消费者组.hashcode % 50 也就是这个文件管理这个消费者组   __consumer_offsets-xx
 *      7. 消费者02 -> 消费者组偏移量文件           加入 消费者组队列
 *      8. 消费者02 -> 消费者组偏移量文件           重新分配 消费者组队列的 主题和分区
 *      9. 消费者01 -> 消费者组偏移量文件           同步消费者的 主题和分区 分配策略
 *         消费者02 -> 消费者组偏移量文件           同步消费者的 主题和分区 分配策略
 *      10. 消费者03 -> kafka节点                 查找消费者组管理器
 *      11. kafka节点 -> 消费者03                 消费者组.hashcode % 50 也就是这个文件管理这个消费者组   __consumer_offsets-xx
 *      12. 消费者03 -> 消费者组偏移量文件           加入 消费者组队列
 *      13. 消费者03 -> 消费者组偏移量文件           重新分配 消费者组队列的 主题和分区
 *      14. 消费者01 -> 消费者组偏移量文件           同步消费者的 主题和分区 分配策略
 *          消费者02 -> 消费者组偏移量文件           同步消费者的 主题和分区 分配策略
 *          消费者03 -> 消费者组偏移量文件           同步消费者的 主题和分区 分配策略
 *
 */
public class E4_消费者组的消费者序列 {

}
